#include <iostream>
#include "p14.h"

// Provide the definition for IntPair and the member functions here

void testHomeWork14_4() {
    IntPair p1 {1, 2};
    IntPair p2 {3, 4};

    std::cout << "p1: ";
    p1.print();

    std::cout << "p2: ";
    p2.print();

    std::cout << "p1 and p1 " << (p1.isEqual(p1) ? "are equal\n" : "are not equal\n");
    std::cout << "p1 and p2 " << (p1.isEqual(p2) ? "are equal\n" : "are not equal\n");

}


void testConstHomeWork14_5() {
    const Date dateTest(2024, 8, 3, 11, 33, 32);
    dateTest.getDateParamDay();
    dateTest.print();
    // dateTest.setDateParmDay(4);  // const ins can not call no-const func.
    dateTest.print();

    Student stu("Luna Deng", 19, Sex::SEX_MEALE, 20240804);
    stu.display();
    stu.print();
}


void print(const Ball& ball) {
    std::cout << "Ball, Color: " << ball.getColor() << ", radius: " << ball.getRadius() << '\n';
}


void testHomeWork14_10() {
    Ball ball("Red", 10.1f);
    print(ball);

    Ball ball3("blue", 99.0f);
    print(ball3);
}


void testHomeWork14_16() {
    Foo foo{};
    std::string testString = "hamapi";
    Foo foo2{testString, 5};
}


void testHomeWork14_17() {
    PairNew pairA(1, 2);
    pairA.display();
    pairA.reset();
    pairA.display();
}
